package sql.dml.selecao.coluna;

import sql.ddl.TokensSQL;
import sql.ddl.coluna.Coluna;
import sql.dml.selecao.tabela.Onde;

public class ColunaSelecao extends Oque implements TokensSQL {
	Coluna coluna;

	Onde onde;

	String alias = null;

	public ColunaSelecao(Coluna coluna) {
		super();
		this.coluna = coluna;
	}

	public ColunaSelecao(Coluna coluna,String alias){
		this(coluna);
		this.alias=alias;
	}
	public ColunaSelecao(Coluna coluna, Onde onde) {
		this.coluna = coluna;
		this.onde = onde;
	}

	public ColunaSelecao(Coluna coluna, Onde onde, String alias) {
		this(coluna, onde);
		this.alias = alias;
	}

	public String codigoSQL() {
		return prefix() + coluna.getNome() + sufix();
	}

	private String sufix() {
		return alias == null ? NONVALUE : SPACE + AS + SPACE + alias;
	}

	private String prefix() {
		String alias2;
		try {
			alias2 = onde.getAlias();
			return (onde == null || (alias2 == null) ? NONVALUE : alias2
					+ PONTO);
		} catch (Exception e) {
			
		}
		return NONVALUE;
	}

	public String getAlias() {
		return alias == null ? coluna.getNome() : alias;
	}

	public String getNome() {
		return coluna.getNome();
	}

	public void setAlias(String alias) {
		this.alias = alias;
	}

}
